说明
本文转自菜鸟教程。
JQuery遍历
JQuery遍历用于根据相对于其他元素的关系来查找HTML元素,通过JQuery遍历,可以从被选的元素开始,轻松的在家族树中向上移动,向下移动,水平移动,这种移动称为对DOM进行遍历。
JQuery遍历-祖先
向上遍历DOM树
主要有以下这些方法:
- parent()
- parents()
- parentsUntil()
JQuery parent()方法
parent()返回被选元素的直接父元素,该方法只会向上一级对DOM树进行遍历,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> .ancestors * { display: block; border: 2px solid lightgrey; color: lightgrey; padding: 5px; margin: 15px; } </style> <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("span").parent().css({"color":"red","border":"2px solid red"}); }); </script> </head> <body> <div class="ancestors"> <div style="width:500px;">div (曾祖父元素) <ul>ul (祖父元素) <li>li (父元素) <span>span</span> </li> </ul> </div> <div style="width:500px;">div (祖父元素) <p>p (父元素) <span>span</span> </p> </div> </div> </body> </html>
|
JQuery parents()方法
parents()方法返回被选元素的所有祖先元素,它一路直到文档的根元素(<html>
),举个例子:
1 2 3
| $(document).ready(function(){ $("span").parents(); });
|
当然也可以使用可选参数来过滤祖先元素的搜索,例如:
1 2 3
| $(document).ready(function() { $("span").parents("ul"); });
|
上面的代码将返回所有<span>
元素的所有祖先,并且它是<ul>
元素。
JQuery parentsUntil()方法
parentUtil()方法返回介于两个给定元素之间的所有祖先元素,例如:
1 2 3
| $(document).ready(function() { $("span").parentsUtil("div"); });
|
需要注意的是不包含parentsUtil()参数的祖先元素的。
JQuery遍历-后代
JQuery children()方法
children()方法返回被选元素的所有直接子元素,该方法只会向下一级对DOM树进行遍历,例如:
1 2 3
| $(document).ready(function() { $("div").children(); });
|
同样地你可以使用可选参数来过滤对子元素的搜索,例如:
1 2 3
| $(document).ready(function() { $("div").children("p.1"); });
|
上面的代码中将返回类名为”1”的所有p元素,并且它们是<div>
的直接子元素。
JQuery find()方法
find()方法返回被选元素的后代元素,一路向下直到最后一个后代,例如:
1 2 3
| $(document).ready(function() { $("div").find("span"); });
|
上面的代码将返回属于<div>
后代的所有<span>
元素。
1 2 3
| $(document).ready(function(){ $("div").find("*"); });
|
上面的代码将返回属于<div>
后代的所有元素。
JQuery遍历-同胞
有下面这些方法可以在DOM树进行水平遍历:
- siblings()
- next()
- nextAll()
- nextUntil()
- prev()
- prevAll()
- prevUntil()
JQuery siblings()方法
siblings()方法返回被选元素的所有同胞元素,例如:
1 2 3
| $(document).ready(function() { $("h2").siblings(); });
|
当然也可以使用可选参数对同胞元素进行过滤:
1 2 3
| $(document).ready(function() { $("h2").siblings("p"); });
|
上面的代码将返回属于<h2>
的同胞元素的所有<p>
元素。
JQuery next()方法
next()方法返回被选元素的下一个同胞元素,该方法只返回一个元素:
1 2 3
| $(document).ready(function() { $("h2").next(); });
|
JQuery nextAll()方法
nextAll()返回被选元素的所有跟随的同胞元素:
1 2 3
| $(document).ready(function() { $("h2").nextAll(); });
|
JQuery nextUntil()方法
nextUntil()方法返回介于两个给定参数之间的所有跟随的同胞元素:
1 2 3
| $(document).ready(function() { $("h2").nextUntil("h6"); });
|
另外三个方法不加以介绍,和上面几个方法道理相同。
JQuery遍历-过滤
JQuery first()
first()返回被选元素的首个元素,例如:
1 2 3
| $(document).ready(function() { $("div p").first(); });
|
上面的代码选取首个<div>
元素内部的第一个<p>
元素。
JQuery last()
last()方法返回被选元素的最后一个元素:
1 2 3
| $(document).ready(function() { $("div p").last(); });
|
上面的代码选择最后一个<div>
元素中的最后一个<p>
元素。
JQuery eq()方法
eq()方法返回被选元素中带有指定索引号的元素,索引号从0开始,因此首个元素的索引号是0而不是1:
1 2 3
| $(document).ready(function() { $("p").eq(1); });
|
上面的代码选取第二个<p>
元素。
JQuery filter()方法
filter()返回匹配的元素:
1 2 3
| $(document).ready(function() { $("p").filter(".url"); });
|
上面的代码返回带有类名”url”的所有<p>
元素。
JQuery not()方法
not()方法返回不匹配标准的所有元素:
1 2 3
| $(document).ready(function() { $("p").not(".url"); });
|
上面的代码返回不带有类名”url”的所有<p>
元素。